package main

import "fmt"

/*
1、map介绍
map是key-value数据结构，又称为字段或者关联数组。类似其它编程语言的集合，在编程中是经常使用到的
2、map声明
基本语法：
var map变量名 map[keytype]valuetype
(1)key可以是什么类型
go中的map，key可以是很多种类型，比如bool，数字，string，指针，channel，还可以是只包含前面几个类型的接口，结构体，数组
通常为int、string
注意：slice、map还有function不可以，因为这几个没法用==来判断
(2)valuetype可以是什么类型
valuetype的类型和key基本一样
通常为数字(整数，浮点数)，string，map，struct
注意：声明是不会分配内存的，初始化需要make，分配内存后才能赋值和使用
*/
func main() {
	//map声明和注意事项
	var a map[string]string
	//在使用map前，需要先make，make的作用就是给map分配数据空间
	a = make(map[string]string, 10)
	a["no1"] = "宋江"
	a["no2"] = "吴用"
	a["no3"] = "武松"
	a["no4"] = "吴用"
	fmt.Println(a)
	/*
		(1)map在使用前一定要make
		(2)map的key是不能重复的，如果重复了，则以最后这个key-value为准
		(3)map的value是可以相同的
		(4)map的key-value是无序的
	*/
}
